/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package gui;
import javax.microedition.lcdui.Graphics;



public abstract class AbstractScreen
{
    private boolean invalidated = true;
    
    private String title = "Abstract Screen";
    
    private String leftMenuText = "Left";
    private String rightMenuText = "Right";
    
    public AbstractScreen()
    {
        System.out.println("creating AbstractScreen()");
    }
    
    
    public void invalidate()
    {
        invalidated = true;
    }
    
    public void showNotify()
    {
        
    }
    
    public void hideNotify()
    {
        
    }

    /**
     * Obsługuje wciśnięcie prawego softkeya który odpowiada za operację 
     * potwierdzenia, akceptacji lub przejścia dalej.
     */
    void onOK()
    {
        System.out.println("ok pressed");
    }

    /**
     * Obsługuje wciśnięcie lewego softkeya który odpowiada operacji odmówienia,
     * anulowania lub cofnięcia.
     */
    void onCancel()
    {
        System.out.println("cancel pressed");
    }
    
    /**
     * Obsługuje wciśnięcie przycisku.
     * @param key
     */
    void onKeyPressed(int key)
    {
        System.out.println("key pressed: " + key);
    }
    
    /**
     * Obsługuje puszczenie przycisku.
     * @param key
     */
    void onKeyReleased(int key)
    {
        //throw new UnsupportedOperationException("Not yet implemented");
    }

    /**
     * Obsługuje przytrzymanie i powtórzenie przycisku.
     * @param key
     */
    void onKeyRepeated(int key)
    {
        //throw new UnsupportedOperationException("Not yet implemented");
    }

    
    /**
     * Odpowiada za narysowanie zawartości okna
     * @param g
     * @param screenWidth
     * @param screenHeight
     */
    public abstract void drawContent(Graphics g, int width, int height);
    /*
    {
        g.setColor(0xff0000);
        g.fillRect(0, 0, width, height);
    }
    */
    public String getTitle()
    {
        return title;
    }

    public String getLeftMenuText()
    {
        return leftMenuText;
    }
    
    public String getRightMenuText()
    {
        return rightMenuText;
    }
}
